/**
 *
 */
package cn.aresoft.excel;

import cn.aresoft.excel.common.ExportExcelBase;
import cn.aresoft.excel.emuns.ExcelExportType;
import org.springframework.http.ResponseEntity;

import java.util.*;


public class ExportExcel  extends ExportExcelBase {


    private Class<? extends Object> clazz;
    private String title;


    /**
     * 构造函数,设置导出基本参数
     * @param clazz  导出对象类
     * @param filePath 导出文件路径
     * @param fileName 导出文件名
     * @param title  导出EXCEL标题
     * @param type   导出类型：1-数据、2-模板
     */
    public ExportExcel(Class<? extends Object> clazz, String filePath, String fileName, String title, ExcelExportType type) {
        super(filePath, fileName, type);
        this.clazz = clazz;
        this.title = title;
    }

    /**
     * 构造函数,设置导出基本参数
     * @param clazz  导出对象类
     * @param fileName 导出文件名
     * @param title  导出EXCEL标题
     * @param type   导出类型：1-数据、2-模板
     */
    public ExportExcel(Class<? extends Object> clazz, String fileName,String title, ExcelExportType type) {
        super(fileName, type);
        this.clazz = clazz;
        this.title = title;
        this.fileName = fileName;

    }


    /**
     * 往导出的EXCEL文件中写数据
     * @param resultList
     */
    public <T> void saveExcelFileData(List<T> resultList)  {
        super.setExcelFileData("数据",this.title,this.clazz,resultList);
        super.closeFileStream();
    }


    /**
     * 文件下载公用方法
     * @param resultList    数据集合
     * @return
     */
    public <T> ResponseEntity<byte[]> excelfileDownload(List<T> resultList) {
        super.setExcelFileData("数据",this.title,this.clazz,resultList);
        return super.excelfileDownload();
    }

    /**
     * 文件下载公用方法
     * @param resultList    数据集合
     * @return
     */
    public <T> ResponseEntity<byte[]> excelfileDownload(List<T> resultList,String waterMarkStr) {
        super.setExcelFileData("数据",this.title,this.clazz,resultList);
        return super.excelfileDownload(waterMarkStr);
    }

}
